//  PublicSendLuaData.cpp
//
//  Lua and C++/C 交互类

#ifndef __Cpp2LuaGlobalFunc__
#define __Cpp2LuaGlobalFunc__

#include "cocos2d.h"
//#include <typeinfo.h>

#include <map>
using namespace cocos2d;
using namespace std;


extern "C" {
#include "lua.h"
#include "lualib.h"
#include "lauxlib.h"
};

#define LUADATACHAR   0   // 代表是字符类型
#define LUADATINT  100    // 代表是int类型
#define LUADATAFLOAT  200  // 代表是float类型
#define LUADATALONG 300  // 代表是long类型
#define LUADATABOOL  400  // 代表是bool类型

namespace cpp2lua{
	/*************************************************
	//C++调用Lua接口;
	*************************************************/
	

	class LuaData : public CCObject
	{
	public:
		LuaData(){};
		virtual ~LuaData(){};
		bool init()
		{
			dataType = -1;
			return true;
		};
	static LuaData* create()
		{
			LuaData* d = new LuaData();

			if (d && d->init())
			{
				d->autorelease();
			}
			else
			{
				CC_SAFE_DELETE(d);
			}

			return d;
		};
	public:
		int dataType;
		std::string m_str;
		int m_inter;
		float m_float;
		long m_long;
		bool m_bool;

	};

	void gluaAllCallBack(std::string funName, CCArray* ar);
}
#endif